package top.yxqz.param.mapper;

import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import top.yxqz.param.pojo.User;

import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * @author: 余小小
 * @date: 2023/3/14
 * @description：
 */
public interface UserMapper {

    /**
     * 单个字面量作为参数传递
     *
     * @param id
     * @return
     */
    User getUserById(@Param("id") Integer id);


    /**
     * 多个字面量作为参数传递
     *
     * @param userName
     * @param pwd
     * @return
     */
    User getUserByUserNameAndPwd(String userName, String pwd);

    User getUserByUserNameAndPwd2(@Param("userName") String userName, @Param("pwd") String pwd);


    /**
     * 用map作为参数传递
     * 通过性别和年龄查询用户信息
     */
    List<User> getUsersByGenderAndAge(Map<String, Object> target);

    /**
     * 对象作为参数传递
     */

    List<User> getUserByEmail(User user);


    /**
     * 查询用户的个数
     */
    int getUserCons();


    Map<String, Object> getUserByIdResMap(@Param("id") Integer id);

    /**
     * 使用map集合来存储的多条数据
     */
    List<Map<String, Object>> getUsersResMap();

    @MapKey("id")
    Map<String,Object> getUsersResMap2();

    /**
     * 通过用户名，进行模糊查询用户信息
     */
    List<User> getUsesByLike(@Param("userName") String userName);

    /**
     * 批量删除
     */
    void delUsers(@Param("ids") String ids);


    /**
     * 增加用户（获取自增数据）
     * @param user
     */
    void  insertUser(User user);

}
